package com.wachulski.marcin.msc.utils;

import com.wachulski.marcin.msc.pl.PLBoundaryKB;
import com.wachulski.marcin.msc.pl.PLFoundationKB;
import com.wachulski.marcin.msc.pl.PLSystemKB;

public final class KBWarehouse {
	private KBWarehouse() {};
	
	/**
	 * Foundation KBs
	 */
	
	public static final PLFoundationKB KB_BASIC_FOUNDATION = new PLFoundationKB(
			"KB_BASIC_FOUNDATION",
			FilePaths.KB_ROOT + "/a_foundation.plm");
	
	public static final PLFoundationKB KB_SET_THEORY = new PLFoundationKB(
			"KB_SET_THEORY",
			FilePaths.KB_ROOT + "/f_set_theory.plm");
	
	/**
	 * System KBs
	 */
	
	public static final PLSystemKB KB_C = new PLSystemKB(
			"KB_C",
			FilePaths.KB_ROOT + "/s_c.plm");
	
	public static final PLSystemKB KB_P = new PLSystemKB(
			"KB_P",
			FilePaths.KB_ROOT + "/s_p.plm");
	
	public static final PLSystemKB KB_K = new PLSystemKB(
			"KB_K",
			FilePaths.KB_ROOT + "/s_k.plm");
	
	public static final PLSystemKB KB_L = new PLSystemKB(
			"KB_L",
			FilePaths.KB_ROOT + "/s_l.plm");
	
	public static final PLSystemKB KB_LP = new PLSystemKB(
			"KB_LP",
			FilePaths.KB_ROOT + "/s_lp.plm");
	
	public static final PLSystemKB KB_LK = new PLSystemKB(
			"KB_LK",
			FilePaths.KB_ROOT + "/s_lk.plm");
	
	//----------------------------------------------------------------------------------
	
	public static final PLSystemKB KB_BASIC_SYSTEM = new PLSystemKB(
			"KB_BASIC_SYSTEM",
			FilePaths.KB_ROOT + "/a_system.plm");
	
	public static final PLSystemKB KB_ZLP = new PLSystemKB(
			"KB_ZLP",
			FilePaths.KB_ROOT + "/s_zlp.plm");
	
	public static final PLSystemKB KB_ZLP_EXT = new PLSystemKB(
			"KB_ZLP_EXT",
			FilePaths.KB_ROOT + "/s_zlp_ext.plm");
	
	//----------------------------------------------------------------------------------
	
	public static final PLSystemKB KB_LP_OPN = new PLSystemKB(
			"KB_LP",
			FilePaths.KB_ROOT + "/s_lp_opn.plm");
	
	public static final PLSystemKB KB_ZLP_OPN = new PLSystemKB(
			"KB_ZLP",
			FilePaths.KB_ROOT + "/s_zlp_opn.plm");
	
	public static final PLSystemKB KB_LP_DF = new PLSystemKB(
			"KB_LP",
			FilePaths.KB_ROOT + "/s_lp_df.plm");
	
	public static final PLSystemKB KB_ZLP_DF = new PLSystemKB(
			"KB_ZLP",
			FilePaths.KB_ROOT + "/s_zlp_df.plm");
	
	//----------------------------------------------------------------------------------
	
	public static final PLSystemKB KB_EXT_CAT = new PLSystemKB(
			"KB_EXT_CAT",
			FilePaths.KB_ROOT + "/s_ext_cat.plm");
	
	public static final PLSystemKB KB_EXT_OPER = new PLSystemKB(
			"KB_EXT_OPER",
			FilePaths.KB_ROOT + "/s_ext_oper.plm");
	
	/**
	 * Boundary KBs
	 */
	
	public static final PLBoundaryKB KB_BASIC_BOUNDARY = new PLBoundaryKB(
			"KB_BASIC_BOUNDARY",
			FilePaths.KB_ROOT + "/a_boundary.plm");
	
}
